using System;
using System.Linq;
using System.Collections.Generic;
using System.Text;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.ComponentModel;
using System.Collections;
using System.Diagnostics.CodeAnalysis;
using System.Windows;

namespace SDF.Primitives
{
   /// <summary>
   /// Represents a list of objects that support data changed notification.
   /// </summary>
   [SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix",
      Justification="This is an interface that only makes sense for collections, so it makes sense " +
                    "to end in 'Collection'.")]
   public interface ISmartDataObjectCollection: INotifyCollectionChanged, INotifyDataChanged
   { }

   /// <summary>
   /// Represents a list of objects that support data changed notification.
   /// </summary>
   public interface ISmartDataObjectCollection<T> : IList<T>, ISmartDataObjectCollection
       where T : class, ISmartDataObject
   { }
}
